package com.liezh.singletons;

/**
 * ThreadLocal会在每个线程上设置一个副本，避免了多个线程的争抢，所以多线程时效率比使用锁要高，是比较常用的单例实现。
 * 简化了整个单例的实现难度，不需要考虑线程安全问题；
 * 但是这种实现只是线程 层面单例，并不是系统层面的单例；
 * @author liezh
 * @date 2021-8-31
 */
public class ThreadLocalLazySingleton {

//    private static final ThreadLocal<RpcClient> local = new ThreadLocal<>();
//
//    //初始化的实现方法
//    private static RpcClient init(){
//        RpcClient context = new RpcClient("127.0.0.1", "7070", 5, 5000);
//        local.set(context);
//        return context;
//    }
//
//    //做延迟初始化
//    public static RpcClient getRpcClient(){
//        RpcClient context = local.get();
//        if (null == context) {
//            context = init();
//        }
//        return context;
//    }
//
//    public static void main(String[] args) {
//        final RpcClient rpcClient = getRpcClient();
//        rpcClient.send("1111111");
//    }


}
